package com.nit.crawler;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nit.tools.JDBCUtils;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public class CrawlerTest {

    public static void main(String[] args) throws IOException {
//        String url ="https://mp.weixin.qq.com/s/Z-NU9LIkrrofESJvGkXJKw";
//        String url = "https://mp.weixin.qq.com/s/TDN5IQ1BiEUoM5vdzLrOxg";
        String url = "https://mp.weixin.qq.com/s/YjTFdKHQxUqThQRZiBTVfQ";
        str(url);
    }


    public static void str(String url) throws IOException {
        Document document = Jsoup.connect(url)
                //默认 30000 ms
                .timeout(30000)
                //可设置代理
//                .proxy("127.0.0.1", 8888)
//                //可设置header，支持逐个设置、map方式设置，部分请求头也可以调用对应的方法直接设置
//                .header("key1", "value1")
//                .header("key2", "value2")
//                .userAgent("")
//                .referrer("")
////                .headers(headerMap)
//                //可设置cookie，，支持逐个设置、map方式设置
//                .cookie("key1", "value1")
//                .cookie("key2", "value2")
//                .cookies(cookieMap)
                //可设置请求体
//                .requestBody("")
                //指定请求方式，默认GET
                .method(Connection.Method.GET)
                //执行请求，返回 Connection.Response。自动会校验http状态码，如果返回的状态码 <200 || >=400，会直接抛出 HttpStatusException
                .execute()
                //解析响应得到 Document
                .parse();
        // GET、POST请求，官方已经封装好了以上三行 .method().execute().parse()，可以直接简写为 get()、post()
        // .get();


//支持多种方式获取元素
//        Elements imgList = document.select("section>img");
//        Elements nameList = document.getElementsByAttribute("name");
//        Elements aList = document.getElementsByTag("a");
//        Elements imgList = document.select("div > a > img");

        Elements imgList = document.getElementsByClass("rich_pages wxw-img");


//处理元素信息
//        String html = username.html();
//        String text = username.text();
//        aList.forEach(a -> System.out.println(a.absUrl("href")));


        List<Map> list = Lists.newArrayList();
        imgList.forEach(img -> {
            Map map = Maps.newHashMap();
            String img_url = img.attr("data-src");
//            String img_url = (String) map.get("img_url");
//            String source_name = (String) map.get("source_name");
//            String source_url = (String) map.get("source_url");
            map.put("source_name", "茶茶图像");
            map.put("img_url", img_url);
            map.put("source_url", url);
            list.add(map);

        });
        if (list.size() > 0){
            JDBCUtils.batchInsert(list);
        }

    }


}
